package com.umpay.privi.dao.on.sys.impl;

import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.HashMap;
import java.util.Map;

import com.umpay.common.persist.AbstractDao;
import com.umpay.common.persist.ibatis.DataAccessException;
import com.umpay.common.persist.ibatis.exception.SQLErrorCodeSQLExceptionTranslator;
import com.umpay.privi.common.XmlData;
import com.umpay.privi.dao.EntityDaoImpl;
import com.umpay.privi.dao.on.sys.UserMediaDao;
import com.umpay.privi.model.sys.UserMedia;

/** 
 * desc:用户登录媒介Dao实现类
 * <p>创建人：Ding Zhe 创建日期：Apr 19, 2013 </p>
 * @version V1.0  
 */
public class UserMediaDaoImpl extends EntityDaoImpl<UserMedia> implements UserMediaDao {
	/* 
	 * desc:
	 * (non-Javadoc)
	 * @see com.umpay.pm.dao.on.sys.UserMediaDao#get(java.lang.String, java.lang.String)
	 */
	public UserMedia get(String userId ,String mediaType )throws DataAccessException{
		Map<String, Object> kMap = new HashMap<String, Object>();
		kMap.put(XmlData.USERID, userId);
		kMap.put(XmlData.MEDIATYPE, mediaType);
		try {
			return (UserMedia)getSqlMapClientTemplate().getSqlMapClient().queryForObject("UserMedia.GetMap", kMap);
		} catch (SQLException e) {
			throw new SQLErrorCodeSQLExceptionTranslator(AbstractDao.DB_TYPE_DB2).translate(e.getMessage(), e);
		}
	}

	public UserMedia getByMediaIdAndSysId(String mediaId, String sysId) throws DataAccessException {
		Map<String, Object> kMap = new HashMap<String, Object>();
		kMap.put(XmlData.MEDIAID, mediaId);
		kMap.put(XmlData.SYSID, sysId);
		try {
			return (UserMedia)getSqlMapClientTemplate().getSqlMapClient().queryForObject("UserMedia.GetByMediaId", kMap);
		} catch (SQLException e) {
			throw new SQLErrorCodeSQLExceptionTranslator(AbstractDao.DB_TYPE_DB2).translate(e.getMessage(), e);
		}
	}
	
	public UserMedia getByMedia(String sysId, String mediaId,String mediaType) throws DataAccessException {
		Map<String, Object> kMap = new HashMap<String, Object>();
		kMap.put(XmlData.SYSID, sysId);
		kMap.put(XmlData.MEDIAID, mediaId);
		kMap.put(XmlData.MEDIATYPE, mediaType);
		try {
			return (UserMedia)getSqlMapClientTemplate().getSqlMapClient().queryForObject("UserMedia.GetByMedia", kMap);
		} catch (SQLException e) {
			throw new SQLErrorCodeSQLExceptionTranslator(AbstractDao.DB_TYPE_DB2).translate(e.getMessage(), e);
		}
	}
	
	public Integer update (String userId, String mediaId, String mediaType, Timestamp modTime, String sysId) throws DataAccessException {
		Map<String, Object> kMap = new HashMap<String, Object>();
		kMap.put(XmlData.SYSID, sysId);
		kMap.put(XmlData.MEDIAID, mediaId);
		kMap.put(XmlData.MEDIATYPE, mediaType);
		kMap.put(XmlData.MODTIME, modTime);
		try {
			return (Integer)getSqlMapClientTemplate().getSqlMapClient().update("UserMedia.GetByMedia", kMap);
		} catch (SQLException e) {
			throw new SQLErrorCodeSQLExceptionTranslator(AbstractDao.DB_TYPE_DB2).translate(e.getMessage(), e);
		}
	}
}



